﻿using System;
using System.Collections.Generic;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002F8 RID: 760
	public class TInsertCondition : TParseTreeNode
	{
		// Token: 0x17000600 RID: 1536
		// (get) Token: 0x06001AB8 RID: 6840 RVA: 0x0032E613 File Offset: 0x0032C813
		// (set) Token: 0x06001AB9 RID: 6841 RVA: 0x0032E61B File Offset: 0x0032C81B
		public virtual TExpression Condition
		{
			get
			{
				return this.condition;
			}
			set
			{
				this.condition = value;
			}
		}

		// Token: 0x17000601 RID: 1537
		// (get) Token: 0x06001ABA RID: 6842 RVA: 0x0032E624 File Offset: 0x0032C824
		// (set) Token: 0x06001ABB RID: 6843 RVA: 0x0032E62C File Offset: 0x0032C82C
		public virtual List<TInsertIntoValue> InsertIntoValues
		{
			get
			{
				return this.insertIntoValues;
			}
			set
			{
				this.insertIntoValues = value;
			}
		}

		// Token: 0x06001ABC RID: 6844 RVA: 0x0032E635 File Offset: 0x0032C835
		public override void init(object arg1, object arg2)
		{
			this.condition = (TExpression)arg1;
			this.insertIntoValues = (List<TInsertIntoValue>)arg2;
		}

		// Token: 0x06001ABD RID: 6845 RVA: 0x0032E650 File Offset: 0x0032C850
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			this.condition.doParse(psql, plocation);
			foreach (TInsertIntoValue tinsertIntoValue in this.insertIntoValues)
			{
				tinsertIntoValue.doParse(psql, plocation);
			}
		}

		// Token: 0x06001ABE RID: 6846 RVA: 0x0032E6B0 File Offset: 0x0032C8B0
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001ABF RID: 6847 RVA: 0x0032E6C0 File Offset: 0x0032C8C0
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			this.condition.acceptChildren(v);
			foreach (TInsertIntoValue tinsertIntoValue in this.insertIntoValues)
			{
				tinsertIntoValue.acceptChildren(v);
			}
			v.postVisit(this);
		}

		// Token: 0x040019BA RID: 6586
		private TExpression condition;

		// Token: 0x040019BB RID: 6587
		private List<TInsertIntoValue> insertIntoValues;
	}
}
